var base_url = 'http://localhost/kooperacija2013/';
function init_main() {

    $( "#organogram ul li p" ).addClass('prvobitno').attr('ariadisabled', 'true');
    greskaBrisanja = '<div class="uk-alert uk-alert-danger uk-text-center greskabrisanja" data-uk-alert> \
                                    <a href="" class="uk-alert-close uk-close"></a> \
                                    <p>Ne možete obrisati prva 3 reda.</p> \
                                </div>';
    greskaElement = '<div class="uk-alert uk-alert-danger uk-text-center greskaelement" data-uk-alert> \
                                    <a href="" class="uk-alert-close uk-close"></a> \
                                    <p>Prvo pomerite elemente!</p> \
                                </div>';
    greskaDodavanja = '<div class="uk-alert uk-alert-danger uk-text-center greskabrisanja" data-uk-alert> \
        <a href="" class="uk-alert-close uk-close"></a> \
        <p>Maksimalno 7 redova: A4 strana</p> \
    </div>';
    wordSaved = '<span id="savedword"><a href="'+base_url+'verzije/word/organogram.doc" class="uk-button uk-button-success" type="button">Download file</a></span>';

    //grid lines
    $(".organogramnovi .uk-table div").addClass('none');
    $('.none, .solid, .dashed').on('click', function() {                             
        this.className = {
           dashed : 'none', none: 'solid', solid: 'dashed'
        }[this.className];
    });
    //Show/Hide Grid BUTTON
    $('.grid').on('click', function(event){
        hidegrid();
    });
    //Show/Hide Box
    $('.organogramnovi tbody tr td').on('dblclick', 'span:not(".snimljenspan")', function(event) {
        $(this).toggleClass('hidebox');  
    });
    //List box copy placeholder
    $( "#organogram li ul li" ).each(function(){
        tekst = $(this).find('span').text();
        div = '<div class="kopija uk-vertical-align"><div class="uk-vertical-align-middle">'+tekst+'</div></div>'
        $(this).append(div);
    });
    //Edit text BUTTON
    $("#organogram li p span").addClass('edittext');
    $('#edit').on('click', 'a', function(event) {
        $(this).removeClass('uk-button-primary')
        .toggleClass('editon');
        if ($('#edit a').hasClass('editon')) {
            editon();
            $(this).addClass('uk-button-success')
            .removeClass('uk-button-danger');
        } else {
            editoff();
            $(this).addClass('uk-button-danger')
            .removeClass('uk-button-success');
        };
    });
    //Lock/Unlock BUTTON
    $('#snimitabelu').on('click', 'a', function(event) {
        $(this).toggleClass('snimion');
        if ($('#snimitabelu a').hasClass('snimion')) {
            snimion();
        } else {
            snimioff();
        };
    });
    $('#kolonaAdd').on('click', 'button', function(event) {
        event.preventDefault();
        dodajkolonu();
    });
    //Add row BUTTON
    $('#redAdd').on('click', 'button', function(event) {
        if ( !$('#redoviForma .brojredova').val() ) {
            var brojRedova = 1;
        } else{
            var brojRedova = $('#redoviForma .brojredova').val();
        };
        brojRedova
        var brojRedova2 = parseInt(brojRedova, 10);
        proveraRedova();
        var ifRed2 = parseInt((brojRedovaMin2 + brojRedova2), 10);
        if (ifRed2 > 7) {
            $('.greskabrisanja').remove();
            $('.redoviadddelete').append(greskaDodavanja);  
            proveraRedova();
           // console.log(brojRedovaMin2 +' + '+ brojRedova2+'='+ifRed2);
        } else{
            dodajRed(brojRedova);
            $('.greskabrisanja').remove();
            $('.greskaelement').remove();
            proveraRedova();
           // console.log(brojRedovaMin2 +' + '+ brojRedova2+'='+ifRed2);
        }
        
    });
    //Delete row BUTTON
    $('#redDelete').on('click', 'button', function(event) {
        proveraRedova();
        var ifRed = parseInt((brojRedovaMin - brojRedovaUser), 10);
        if (ifRed < 3) {
            brisiredove = brojRedovaMin-3;
            $('.greskabrisanja').remove();
            $('.redoviadddelete').append(greskaBrisanja);  
        } else{
            $('.greskabrisanja').remove();
            brisiredove = brojRedovaUser;
        }
        console.log('Obrisi brisiredove '+brisiredove);
        $.expr[':'].classKutija = function(obj){
          return (/\bkutija/).test(obj.className);
        };
        brnum = parseInt(brisiredove, 10);
        brisiredoveKutija = '-n+'+(brnum);
        brojRedovaKutija = $('.organogramnovi tbody tr:nth-last-child('+brisiredoveKutija+')').find('span:classKutija').length;
        if(brojRedovaKutija != 0) {
            $('.greskaelement').remove();
            $('.redoviadddelete').append(greskaElement);
        } else{
           $('.greskaelement').remove();
           obrisiRed(brisiredove);
        };
        brojRedovaMin2 = parseInt(brojRedovaMin, 10);
     });

    snapDragable = '.prvispan, #organogram ul li ';
};

function proveraRedova() {
    brojRedovaLoad = $('.organogramnovi tbody tr').length;
    if (brojRedovaLoad > 3) {
        brojRedovaMin = $('.organogramnovi tbody tr').length;

    } else{
        brojRedovaMin = 3;
    };
    if ( !$('#redoviForma .brojredova2').val() ) {
        brojRedovaUser = 1;
    } else{
        brojRedovaUser = $('#redoviForma .brojredova2').val();
    };
    btnDel = $('#redDelete button').get(0);
    if (brojRedovaMin <= 3) {
        btnDel.setAttribute("disabled","");
    } else {
        btnDel.removeAttribute("disabled","");
    };
    brojRedovaMin2 = parseInt(brojRedovaMin, 10);

};
function dodajRed(trbroj) {
    for (var i = 0; i < trbroj; ++i) {
        var poslednjiRed = $( ".organogramnovi tbody tr:last-child" ).clone(true, true);
        poslednjiRed.find('div').removeClass('solid dashed').addClass('none');
        poslednjiRed.find('span').remove();
        poslednjiRed.addClass('novired');
        $( ".organogramnovi tbody" ).append($(poslednjiRed));
        testingSpan = $('<span class="prvispan"></span>');
        poslednjiRed.find('td').append($(testingSpan));
        poslednjiRed.find('span').droppable(droppableSpanOptions);
    };
};
function dodajkolonu() {
        $( ".organogramnovi tbody tr" ).each(function(index, el) {
           poslednjaKolona = $(this).find('td:last-child').clone(true, true);
           poslednjaKolona.find('span').remove();
           $(this).append($(poslednjaKolona));
           
           testingSpan = $('<span class="prvispan"></span>');
           poslednjaKolona.append($(testingSpan));
           poslednjaKolona.find('span').droppable(droppableSpanOptions);
        });
     

};
function obrisiRed(trbroj) {
    for (var i = 0; i < trbroj; ++i) {
        var poslednjiRed = $( ".organogramnovi tbody tr:last-child" ).remove();
    };
    brojRedovaLoad = $('.organogramnovi tbody tr').length;
    if (brojRedovaLoad > 3) {
        brojRedovaMin = $('.organogramnovi tbody tr').length;
    } else{
        brojRedovaMin = 3;
    };
};

function dragdropList(element) {
    droppableListOptions = {
        hoverClass: "drop-hover",
        activeClass: "ui-state-highlight2",
        tolerance: "fit",
        drop: function (event, ui) {
            var dragableKlas = $(ui.draggable).parent().attr('class');
            $( ".organogramnovi td > span" )
            .removeClass(dragableKlas)
            .addClass('ui-droppable prvispan');
            $(ui.draggable)
            .removeClass('spusteno')
            .addClass('prvobitno')
            .resizable()
            .resizable( "disable" )
            .removeClass('ui-state-disabled')
            .attr('ariadisabled', 'true');
        }
    }    
    $( element )
    .each(function(index, el) {
        var klas = 'kutija-'+[index];
        $(this).addClass(klas);
    })
    .droppable(droppableListOptions)
    .find('p').draggable({ 
        revert: "invalid",
        snap: snapDragable,
        snapMode:'inner',
        snapTolerance: 20
    });
}

function dragdropSpan(element) {
        droppableSpanOptions = {
        hoverClass: "drop-hover",
        activeClass: "ui-state-highlight2",
        tolerance: "fit",
        drop: function (event, ui) {
            var dragableKlas = $(ui.draggable).parent().attr('class');
            $( ".organogramnovi td > span" )
            .removeClass(dragableKlas)
            .addClass('ui-droppable prvispan');

            $(this).addClass(dragableKlas);
            
            $(ui.draggable)
            .attr('ariadisabled', 'false')
            .addClass('spusteno')
            .removeClass('prvobitno')
            .resizable({ 
                handles: "se",
                minWidth: 117,
                minHeight: 40,
                maxWidth: 439,
                maxHeight: 118  
            })
            .resizable( "enable" );
        }
    }
    $( element ).droppable(droppableSpanOptions);
};
function init_draggables_and_droppables() {
    dragdropList('#organogram ul li');
    dragdropSpan('.organogramnovi td > span');
};
function loadingon() {
    $('.loading').show();
    $('.loading div').css('width', '90%');
};
function loadingoff() {
    $('.loading').hide();
    $('.loading div').css('width', '10%');
};
 

function snimion() {  
    $('.spusteno').each(function(index, el) {
        klonClass = $(el).parent().attr('class');
        klon2 = $.grep(klonClass.split(" "), function(v, i){
           return v.indexOf('kutija') === 0;
        }).join();

        prazanKlon = $(this).clone();
        $(this).hide();
        prazanKlon.css({
            position: 'relative',
            left: '-1px',
            top: '-1px',
            zIndex: '1000'
        })
        .removeClass('ui-draggable spusteno ui-resizable ui-draggable-dragging');
        $('.organogramnovi').find('p div').remove();
        
        prazanKlon.appendTo('.organogramnovi .'+klon2+'').addClass('snimljeno');
        $('.snimljeno').parent().addClass('snimljenop');
        $('.snimljeno').not(':first-child').remove();
        $('.snimljeno div').remove();
        $('.organogramnovi').addClass('snimljenOrg');
        $(".snimljeno  >  span").removeClass('edittext')
        .addClass('snimljenspan')
        .attr('title', '');
        console.log($('.snimljenspan a').html());
    });
    $('#snimitabelu a').addClass('uk-button-success snimion').removeClass('uk-button-danger').removeClass('uk-button-primary').text('Otključaj');
};
function snimioff() {  
    $('.spusteno').each(function(index, el) {
        $('.snimljeno').parent().removeClass('snimljenop');
        $('.snimljeno').detach();
        $(this).show();
        $(this).attr('ariadisabled','false');
    });
    $('.organogramnovi').removeClass('snimljenOrg');
    $('.organogramnovi tbody tr td >  span').removeClass('snimljenop');
    $('#snimitabelu a').addClass('uk-button-danger').removeClass('uk-button-success').removeClass('uk-button-primary snimion').text('Zaključaj');
};    

function editon() {
    $(".edittext").editable(function(value, settings) { 
         return(value);
    }, {
          //indicator : "<img src='img/indicator.gif'>",
          tooltip   : "Doubleclick to edit...",
          event     : "dblclick",
          style  : "inherit"
    })
    .editable('enable');
    $('#edit a').text('Izmeni tekst - ON');
}; 
function editoff() {
    $(".edittext").editable(function(value, settings) { 
         return(value);
    }, {
        tooltip   : "Click and drag to move",
        placeholder : ""
    })
    .editable('disable');
    $('#edit a').text('Izmeni tekst - OFF');
}; 

function hidegrid() {
    $( ".organogramnovi" ).toggleClass('hidegrid');
    $('.grid').removeClass('uk-button-primary');
    if ($( ".organogramnovi" ).hasClass('hidegrid')) {
        $('.none').addClass('hideLine');
        $('.grid').addClass('uk-button-danger')
        .removeClass('uk-button-success');
        $('#hideshow a').text('Prikaži Grid');
    } else {
        $('.none').removeClass('hideLine');
        $('.grid').addClass('uk-button-success')
        .removeClass('uk-button-danger');
        $('#hideshow a').text('Sakrij Grid');
    }
};

function savexml() {
    svekutijeTop = [];
    svekutijeLeft = [];
    svekutijeText = [];
    svekutijeWidth = [];
    svekutijeHeight = [];
    $('.snimljeno').each(function(index, el) {
        var kutijeTop = $(this).offset().top - $("#glavnatabela").offset().top;
        var kutijeLeft = $(this).offset().left - $("#glavnatabela").offset().left;
        var kutijeText = $(this).find('.snimljenspan a').html();
        var kutijeWidth = $(this).width();
        var kutijeHeight = $(this).height();

        //console.log('kutija-'+index+' '+kutijeText+': top '+kutijeTop+' left '+kutijeLeft);
        
        svekutijeTop.push(kutijeTop);
        svekutijeLeft.push(kutijeLeft);
        svekutijeText.push(kutijeText);
        svekutijeWidth.push(kutijeWidth);
        svekutijeHeight.push(kutijeHeight);
    });
    solidlinijeTop = [];
    solidlinijeLeft = [];
    solidlinijeWidth = [];
    solidlinijeHeight = [];
    $('.solid').each(function(index, el) {
        var solidTop = $(this).offset().top - $("#glavnatabela").offset().top;
        var solidLeft = $(this).offset().left - $("#glavnatabela").offset().left;
        var solidWidth = $(this).width();
        var solidHeight = $(this).height();
        //console.log('solid-'+index+': top '+solidTop+' left '+solidLeft);

        solidlinijeTop.push(solidTop);
        solidlinijeLeft.push(solidLeft);
        solidlinijeWidth.push(solidWidth);
        solidlinijeHeight.push(solidHeight);
        //vrstalinije = '#solidline';

    });
    dashedlinijeTop = [];
    dashedlinijeLeft = [];
    dashedlinijeWidth = [];
    dashedlinijeHeight = [];
    //vrstalinije = [];
    $('.dashed').each(function(index, el) {
        var dashedTop = $(this).offset().top - $("#glavnatabela").offset().top;
        var dashedLeft = $(this).offset().left - $("#glavnatabela").offset().left;
        var dashedWidth = $(this).width();
        var dashedHeight = $(this).height();
        //console.log('dashed-'+index+': top '+dashedTop+' left '+dashedLeft+' width '+dashedWidth);

        dashedlinijeTop.push(dashedTop);
        dashedlinijeLeft.push(dashedLeft);
        dashedlinijeWidth.push(dashedWidth);
        dashedlinijeHeight.push(dashedHeight);
        //vrstalinije.push('#dashline');
        //vrstalinije = '#dashline';
    });
  
};
function init_wordsave() {
    $('#saveword button').one('click',  function(event) {
        event.preventDefault();
        snimion();
        savexml(); 
        $.ajax({
            url: 'http://localhost/kooperacija2013/verzije/save_to_xml.php',
            type: 'POST',
            data: { svekutijeTop: svekutijeTop,
                    svekutijeLeft: svekutijeLeft,
                    svekutijeHeight: svekutijeHeight,
                    svekutijeWidth: svekutijeWidth,
                    svekutijeText: svekutijeText,
                    dashedlinijeTop: dashedlinijeTop,
                    dashedlinijeLeft: dashedlinijeLeft,
                    solidlinijeTop: solidlinijeTop,
                    solidlinijeLeft: solidlinijeLeft,
                    dashedlinijeWidth: dashedlinijeWidth,
                    dashedlinijeHeight: dashedlinijeHeight,
                    solidlinijeWidth: solidlinijeWidth,
                    solidlinijeHeight: solidlinijeHeight}
            //dataType: "json"        
        })
        .done(function(reply) {
            $('#savedword').remove();
            $('#saveword').parent().append(wordSaved);
           
        })
        .fail(function() {
            console.log("error");
        })
        .always(function() {
            console.log("file saved");
        });
    });  
 
   
};
